#ifndef GL_FONT_H
#define GL_FONT_H

#define DRAWFONT_VCENTER	0x01
#define DRAWFONT_HCENTER	0x08

struct charInfo {
	float x, y, x2, y2;
	int rasterWidth;
	int rasterStart;
	int prefix;
	int suffix;
};

class GLFont {
public:
	wxString face;
	int point;
	int height;
	charInfo chars[128];
	int error;
	GLuint texture;

	// Window is just used to create a temporary dc used as a hint
	// when creating an offscreen DC.
	GLFont(const wxString &face, int point, wxWindow *window);
	~GLFont();

	void Begin();
	void Draw(const wxString &s, int x, int y, float z, unsigned int params);

	// This is the slightly faster one.
	void Draw(const char *s, int x, int y, float z, unsigned int params);

	void End();
};

#endif
